Traditionally, gaming systems were standalone machines that accommodated a limited number of players (e.g., 1-4 players). In this traditional setup, the players all play from this same gaming system, which controls all aspects of the game and outputs video signals onto a single display. In a first person shooter (FPS) type game, for instance, the traditional gaming system creates and controls game objects such as a player avatar (i.e., a representation of that player) for each player, with each avatar being located within a same game world.
In these FPS type games, the traditional gaming system often allocates the television display in equal portions, with each player controlling his or her respective portion and viewing the game from his or her corresponding avatar's point of view. For instance, if four players play an FPS type game, the display divides into four equal parts, each depicting the viewpoint of a player's avatar. Because each avatar exists in the same game world, avatars often encounter and interact with one other. Of course, when a first player's avatar encounters a second player's avatar, a replica of that second player's avatar is reproduced on the first player's portion of the display. Meanwhile, if the second player's avatar looks at the first player's avatar, then the second player's portion of the display should correspondingly illustrate a replica of the first player's avatar. To do so, it is important that the gaming system tracks a current location of each avatar and provides that information to the display portions of the other players. Because the traditional single gaming system creates and controls all of the avatars itself, however, tracking the location of each avatar is easily accomplished, as is reproducing a replica on another player's portion of the display.
As opposed to playing in this traditional manner in which players must generally be located within a same physical room, personal computer-based gaming grew in popularity in part due to the ability to play games over a network with many remote players. In fact, such a network-based gaming environment allows players from all over the world to participate in a same game. Borrowing from this environment, gaming systems now also handle network-based gaming. Multiple gaming systems connected together over such a network can be organized into either a “client-server” architecture or a “peer-to-peer architecture”. The “client-server” architecture operates in a manner similar to the traditional gaming environment where a single (server) system creates and controls the entire game and all game objects; the server communicates the state of the game to multiple client systems, which allows physically separated players to participate in the game. By contrast, in a peer-to-peer architecture, the state and execution of the game and its objects are often partitioned across the gaming systems of the participating peers.
To highlight the consequences of the difference between the traditional gaming environment and the peer-to-peer environment, imagine that a first gaming system controlled by a first player is connected to a second gaming system controlled by a second player. In this example, the first gaming system likely creates and controls a game object such as an avatar of the first player. The second gaming system likely does the same for the second player. Accordingly, in an FPS type game, the first gaming system must update the second gaming system with changes in location and other characteristics of the first player's avatar by sending updates over the network. Similarly, the second gaming system must update, again over the network, the first gaming system with actions of the second player's avatar. Updating gaming systems over the network, however, is a much greater challenge as compared to the traditional gaming environment, which only needed to update the objects maintained within a single system. Creating further difficulty, peer-to-peer architectures generally connect many more than two gaming systems at one time, many or all of which may also need updates.
Therefore, it may be difficult for a gaming system in a peer-to-peer architecture to continually send updates to all connected systems, especially if the player controlling the system employs a network connection with limited upload bandwidth. In fact, even players that connect to the architecture via a typical broadband connection may lack the upload capacity necessary to send updates to all interested gaming systems on every execution frame of the game. This may result in the other players viewing stale views of the replica of that player's avatar. Similarly, when the other players actually receive an update, the changes in the replica's location or other characteristics may appear quite “choppy”. In many fast-paced games, such as FPS games, such delays and inconsistencies generally reduce the amount of fun experienced by the game players, as the location and other characteristics of the replicas do not appear realistic or smooth.